The disclosure relates generally to a method and apparatus for providing local screen data to a sink device.
Consumers of digital media content such as movies, photographs, and music desire the ability to easily experience the content on any of a variety of devices, regardless of where the content is stored. In a typical home setting, a consumer acquires media content via the internet or by using devices such as cameras and video recorders, and stores the media content on a personal computer, the camera or video recorder, a phone, a tablet computing device, or other storage device (“source device”) attached to a wired or wireless network (e.g., a home network). Many consumers desire to experience the stored media content on a device other than the source device because of limitations of the playback equipment of the source device (e.g., PCs have small displays and inferior audio components). Accordingly, many digital media players (“sink devices”) exist that are capable of locating media content stored on a networked source device, permitting the user to select desired content through a graphical user interface (“GUI”), and playing back and rendering the selected content using the equipment of the sink device. Examples of such sink devices include televisions, stereos, home theatre systems, wireless monitors, and game consoles, to name a few.
In 2003, in response to a lack of interoperability of the wide variety of source devices and sink devices, the Digital Living Network Alliance (“DLNA”) organization was established to enhance the compatibility among components of home network systems. The DLNA issues design guidelines and industry-level standards for equipment manufacturers to support seamless sharing of media content through home networks. As it evolved, the DLNA established a basis for home network interoperability by formulating design guidelines based on various widely used open standards, such as HTTP, UPnP, XML and MPEG. According to one DLNA standard, sink devices employ a “pull model” transfer protocol, described more fully below, for receipt of media content from source devices.
FIG. 1 depicts a prior art system wherein the sink device employs a pull model protocol. As shown, system 100 includes a source device 102, a sink device 104, and a wireless network 106. In this example, source device 102 includes a display 108, a DLNA server 110, and a media library 112. Sink device 104 includes a DLNA client 114 and a display 116. Using the pull model, sink device 104 connects to source device 102 via network 106, requests specific media content stored in media library 112, and demands streaming of the content over network 106 by DLNA server 110 at a rate determined by DLNA client 114. DLNA client 114 processes and displays the received content on display 116.
While the pull model is acceptable for receiving media files stored in media library 112 (i.e., media content which can be read and served from beginning to end at whatever consumption rate sink device 104 demands), it is incompatible with receipt of live content, such as sharing real-time content of display 108 of source device 102, including cursor movements and other user interactions (“local screen data,” sometimes referred to as “wireless device content”). While existing source devices can serve continuous media files at a consumption rate demanded by sink devices employing the pull model, such source devices cannot serve such local screen data. As such, a wide variety of conventional sink devices cannot be used to view local screen data generated at source devices.
An update to the DLNA standard specifications enables the use of push model data delivery. However, this new standard is not widely adopted and does not enable “push data” to existing DLNA solutions in the market. As such, while a source device can serve local screen data to sink devices designed or adapted to receive such data, it cannot serve local screen data to the vast number of legacy sink devices employing the DLNA pull model protocol.
Accordingly, there exists a need for an improved method and apparatus for providing local screen data to sink devices at a consumption rate determined by the sink devices in order to address one or more of the above-noted drawbacks.